昨天有說到變數儲存修飾字分別有:extern、register、static、const這幾個。
今天就會把每一個修飾字一一的做個小練習!那我們就開始吧~
一、變數儲存:
1.extern 練習題
檔案一:
#include <iostream>
#include "6-4-1-file2.cpp"
using namespace std;
extern void f (int);
int a;
int main(void)
{
f(5);
cout<<"a="<<a<<endl;
return 0;
}
檔案二:
extern int a;
void f(int b)
{
a=b*b;
return;
}
小總節:extern主要目的是告訴編譯器,這個數字已經在其他地方宣告過,不再配置記憶體給該變數。
2.register 練習題
#include <iostream>
using namespace std;
int main(void)
{
register int i;
for(i=0;i<10000;i++)
cout<<i<<" ";
return 0;
}
小總節:主要目的為如果一個迴圈執行次數頻繁,控制該迴圈次數變數就可用register來宣告,執行時可以節省時間。
3.static 練習題
#include <iostream>
using namespace std;
int f (void);
int main(void)
{
int i;
for(i=1;i<5;i++)
cout<<"x="<<f()<<endl;
}
int f(void)
{
static int x=0;
return x++;
}
小總結:主要目的為可以讓變數初始化一次。
4.constant 練習題
#include <iostream>
using namespace std;
int main(void)
{
const int x = 1;
x++;
}
小總結:目的為被修飾的變數不能做更改。
二、遞迴函式(n!計算)練習題:
#include <iostream>
using namespace std;
int factorial(int);
int main(void)
{
int n;
cout<<Input n:";
cin>>n;
cout<<n<<"!="<<factorial(n);
}
int factorial (int n)
{
if (n==1)
return 1;
return n*factorial (n-1);
}
三、main 函式的引數(根號的計算) 練習題:
#include <iostream>
using namespace std;
int SQRT(int);
int main(void)
{
int n;
cin>>n;
cout<<SQRT(n);
return 0;
}
int SQRT(int n)
{
int i;
if(n<1) return -1;
for(i=1;i<n;i++)
if(i*i>n) break;
if( (i*i-n)< (n - (i-1)*(i-1)) )
return i;
else
return i-1;
}
!!以上內容是跟著第一次學C++就上手第二版第六章後半部實作內容做學習!!